Wireless communication system transmission methods have evolved to include multiple transmit antennas and multiple receive antennas in order to greatly increase the link capacity of wireless communication systems and/or to better focus the transmitted energy at the receiver for greater efficiency and less interference. An antenna array is a group of spaced apart antennas that each transmit an antenna signal that has a specific gain and phase relationship with the other antenna signals. When the antennas work together transmitting the antenna signals, they produce an antenna pattern that is more focused on the receiver than a pattern produced by a single antenna. Note that the process of changing the gain and phase of a signal to produce antenna signals may be referred to as “weighting” the signal using a set of “antenna array weights.” Because antenna arrays may similarly be used at a receiver to improve signal quality, use of antenna arrays at both the transmitter and receiver has been proposed. When multiple antennas are used at the transmitter and receiver, the wireless channel between them may be referred to as a multiple-input, multiple-output (MIMO) channel. Obviously, determining how to feed signals to the multiple transmit antennas and receive signals from the multiple receive antennas becomes quite complicated.
Various transmission strategies require the transmit antenna array to have some level of knowledge concerning the channel response between each transmit antenna element and each receive antenna element, and are often referred to as “closed-loop” MIMO. Obtaining full broadband channel knowledge at the transmitter is possible using techniques such as uplink sounding in Time Division Duplexing (TDD) systems and channel feedback in either TDD or Frequency Division Duplexing (FDD) systems. Limited feedback methods like feeding back an antenna selection indicator or codebook-based beamforming weights selection can reduce the amount of feedback as opposed to full channel feedback, which would require a significant amount channel resources thereby reducing the link capacity.
One solution is to provide a set of pre-coded beamforming weights that can be agreed upon between a transmitter and receiver. The set of pre-coded weights can be identified by an index. In this way, only an index need be used in feedback to the transmitter in order for the transmitter to know the proper pre-coded weights to use. However, it is difficult to provide an indexed codebook of weights that can cover all transmission conditions and number of antennas. Therefore, some calculation is still needed. Unfortunately, existing codebooks are quite complex, with weights for each index comprising a matrix of a rank of up to the number of antenna elements (the rank means the number of data streams that are to be transmitted). Given that existing matrices can contain entries with unconstrained values (i.e. alphabet) determining weights from a matrix of a particular rank still requires a number of involved calculations, which can include more complex math including matrix multiplications. Moreover, different codebooks are provided for different ranked weights, and the computational complexity of a search for determination of pre-coded weights create a problem.
Thus an efficient feedback method is needed to provide a selection of beamforming weights to the transmitter. It would be of benefit to provide a codebook that reduces computational complexity. It would be of further benefit to provide one codebook that can be used independent of rank.